package com.pj.controller;

import cn.dev33.satoken.annotation.*;
import cn.dev33.satoken.basic.SaBasicUtil;
import cn.dev33.satoken.secure.SaSecureUtil;
import cn.dev33.satoken.stp.StpUtil;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * @author lzh@aginome.com
 * @description
 * @date 2022/08/02
 **/


@RestController
@RequestMapping("test")
public class TestController {

    // 登录认证：只有登录之后才能进入该方法
    @SaCheckLogin
    @GetMapping("info")
    public String info() {
        return "查询用户信息";
    }

    // 角色认证：必须具有指定角色才能进入该方法
    @SaCheckRole("super-admin")
    @RequestMapping("add")
    public String add1() {
        return "用户增加";
    }

    // 权限认证：必须具有指定权限才能进入该方法
    @SaCheckPermission("user-add")
    @RequestMapping("add2")
    public String add2() {
        return "用户增加";
    }

    // 二级认证：必须二级认证之后才能进入该方法
    @SaCheckSafe()
    @RequestMapping("add3")
    public String add3() {
        StpUtil.getSession();
        return "用户增加";
    }

    // Http Basic 认证：只有通过 Basic 认证后才能进入该方法
    @SaCheckBasic(account = "sa:123456")
    @RequestMapping("add4")
    public String add4() {
        SaBasicUtil.check("sa:123456");
        return "用户增加";
    }



    @GetMapping("pass")
    public String pass() {
        // md5加密
        String md5 = SaSecureUtil.md5("123456");

        // sha1加密
        String sha1 = SaSecureUtil.sha1("123456");

        // sha256加密
        String sha256 = SaSecureUtil.sha256("123456");

        // md5加盐加密: md5(md5(str) + md5(salt))
        String salt = SaSecureUtil.md5BySalt("123456", "salt");

        return null;
    }




}
